home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 3_2004-2005.ISO / Data / Zips / Multiplaye1761246232004.psc / Tank Game.frm < prev    next >
Text File  |  2004-06-23  |  44KB  |  1,363 lines

  1. VERSION 5.00
  2. Object = "{248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0"; "MSWINSCK.OCX"
  3. Object = "{48E59290-9880-11CF-9754-00AA00C00908}#1.0#0"; "MSINET.OCX"
  4. Begin VB.Form Form1 
  5.    AutoRedraw      =   -1  'True
  6.    Caption         =   "Tank Game"
  7.    ClientHeight    =   6156
  8.    ClientLeft      =   132
  9.    ClientTop       =   876
  10.    ClientWidth     =   7728
  11.    LinkTopic       =   "Form1"
  12.    ScaleHeight     =   513
  13.    ScaleMode       =   3  'Pixel
  14.    ScaleWidth      =   644
  15.    StartUpPosition =   3  'Windows Default
  16.    Begin VB.CommandButton Command1 
  17.       Caption         =   "Command1"
  18.       Height          =   252
  19.       Left            =   240
  20.       TabIndex        =   28
  21.       Top             =   720
  22.       Visible         =   0   'False
  23.       Width           =   492
  24.    End
  25.    Begin VB.Timer Timer4 
  26.       Interval        =   1
  27.       Left            =   7440
  28.       Top             =   480
  29.    End
  30.    Begin VB.Timer Timer3 
  31.       Enabled         =   0   'False
  32.       Interval        =   3000
  33.       Left            =   7680
  34.       Top             =   120
  35.    End
  36.    Begin VB.TextBox Text2 
  37.       Enabled         =   0   'False
  38.       Height          =   288
  39.       Left            =   1560
  40.       TabIndex        =   27
  41.       Text            =   "Text2"
  42.       Top             =   120
  43.       Visible         =   0   'False
  44.       Width           =   1332
  45.    End
  46.    Begin VB.Timer Timer2 
  47.       Enabled         =   0   'False
  48.       Interval        =   1
  49.       Left            =   7800
  50.       Top             =   840
  51.    End
  52.    Begin VB.CommandButton bb 
  53.       BackColor       =   &H00000000&
  54.       Enabled         =   0   'False
  55.       Height          =   384
  56.       Index           =   9
  57.       Left            =   8880
  58.       Style           =   1  'Graphical
  59.       TabIndex        =   26
  60.       Top             =   1200
  61.       Visible         =   0   'False
  62.       Width           =   384
  63.    End
  64.    Begin VB.CommandButton bb 
  65.       BackColor       =   &H00000000&
  66.       Enabled         =   0   'False
  67.       Height          =   384
  68.       Index           =   8
  69.       Left            =   8880
  70.       Style           =   1  'Graphical
  71.       TabIndex        =   25
  72.       Top             =   1200
  73.       Visible         =   0   'False
  74.       Width           =   384
  75.    End
  76.    Begin VB.CommandButton bb 
  77.       BackColor       =   &H00000000&
  78.       Enabled         =   0   'False
  79.       Height          =   384
  80.       Index           =   7
  81.       Left            =   8880
  82.       Style           =   1  'Graphical
  83.       TabIndex        =   24
  84.       Top             =   1200
  85.       Visible         =   0   'False
  86.       Width           =   384
  87.    End
  88.    Begin VB.CommandButton bb 
  89.       BackColor       =   &H00000000&
  90.       Enabled         =   0   'False
  91.       Height          =   384
  92.       Index           =   6
  93.       Left            =   8880
  94.       Style           =   1  'Graphical
  95.       TabIndex        =   23
  96.       Top             =   1200
  97.       Visible         =   0   'False
  98.       Width           =   384
  99.    End
  100.    Begin VB.Timer btimer 
  101.       Enabled         =   0   'False
  102.       Index           =   9
  103.       Interval        =   25
  104.       Left            =   8400
  105.       Top             =   1920
  106.    End
  107.    Begin VB.Timer btimer 
  108.       Enabled         =   0   'False
  109.       Index           =   8
  110.       Interval        =   25
  111.       Left            =   8400
  112.       Top             =   1920
  113.    End
  114.    Begin VB.Timer btimer 
  115.       Enabled         =   0   'False
  116.       Index           =   7
  117.       Interval        =   25
  118.       Left            =   8280
  119.       Top             =   2040
  120.    End
  121.    Begin VB.Timer btimer 
  122.       Enabled         =   0   'False
  123.       Index           =   6
  124.       Interval        =   25
  125.       Left            =   8280
  126.       Top             =   2280
  127.    End
  128.    Begin VB.Timer ghost 
  129.       Enabled         =   0   'False
  130.       Index           =   1
  131.       Interval        =   1000
  132.       Left            =   7920
  133.       Top             =   840
  134.    End
  135.    Begin VB.Timer btimer 
  136.       Enabled         =   0   'False
  137.       Index           =   5
  138.       Interval        =   25
  139.       Left            =   8280
  140.       Top             =   1920
  141.    End
  142.    Begin VB.Timer btimer 
  143.       Enabled         =   0   'False
  144.       Index           =   4
  145.       Interval        =   25
  146.       Left            =   8280
  147.       Top             =   1800
  148.    End
  149.    Begin VB.Timer btimer 
  150.       Enabled         =   0   'False
  151.       Index           =   3
  152.       Interval        =   25
  153.       Left            =   8280
  154.       Top             =   1920
  155.    End
  156.    Begin VB.Timer btimer 
  157.       Enabled         =   0   'False
  158.       Index           =   2
  159.       Interval        =   25
  160.       Left            =   8400
  161.       Top             =   1920
  162.    End
  163.    Begin VB.Timer btimer 
  164.       Enabled         =   0   'False
  165.       Index           =   1
  166.       Interval        =   25
  167.       Left            =   8400
  168.       Top             =   1680
  169.    End
  170.    Begin VB.Timer btimer 
  171.       Enabled         =   0   'False
  172.       Index           =   0
  173.       Interval        =   25
  174.       Left            =   8160
  175.       Top             =   2040
  176.    End
  177.    Begin VB.CommandButton bb 
  178.       BackColor       =   &H00000000&
  179.       Enabled         =   0   'False
  180.       Height          =   384
  181.       Index           =   5
  182.       Left            =   8880
  183.       Style           =   1  'Graphical
  184.       TabIndex        =   22
  185.       Top             =   1320
  186.       Visible         =   0   'False
  187.       Width           =   384
  188.    End
  189.    Begin VB.CommandButton bb 
  190.       BackColor       =   &H00000000&
  191.       Enabled         =   0   'False
  192.       Height          =   384
  193.       Index           =   4
  194.       Left            =   8880
  195.       Style           =   1  'Graphical
  196.       TabIndex        =   21
  197.       Top             =   1320
  198.       Visible         =   0   'False
  199.       Width           =   384
  200.    End
  201.    Begin VB.CommandButton bb 
  202.       BackColor       =   &H00000000&
  203.       Enabled         =   0   'False
  204.       Height          =   384
  205.       Index           =   3
  206.       Left            =   8880
  207.       Style           =   1  'Graphical
  208.       TabIndex        =   20
  209.       Top             =   1320
  210.       Visible         =   0   'False
  211.       Width           =   384
  212.    End
  213.    Begin VB.CommandButton bb 
  214.       BackColor       =   &H00000000&
  215.       Enabled         =   0   'False
  216.       Height          =   384
  217.       Index           =   2
  218.       Left            =   8880
  219.       Style           =   1  'Graphical
  220.       TabIndex        =   19
  221.       Top             =   1320
  222.       Visible         =   0   'False
  223.       Width           =   384
  224.    End
  225.    Begin VB.CommandButton bb 
  226.       BackColor       =   &H00000000&
  227.       Enabled         =   0   'False
  228.       Height          =   384
  229.       Index           =   1
  230.       Left            =   8880
  231.       Style           =   1  'Graphical
  232.       TabIndex        =   18
  233.       Top             =   1320
  234.       Visible         =   0   'False
  235.       Width           =   384
  236.    End
  237.    Begin VB.CommandButton bb 
  238.       BackColor       =   &H00000000&
  239.       Enabled         =   0   'False
  240.       Height          =   384
  241.       Index           =   0
  242.       Left            =   8880
  243.       Style           =   1  'Graphical
  244.       TabIndex        =   17
  245.       Top             =   1320
  246.       Visible         =   0   'False
  247.       Width           =   384
  248.    End
  249.    Begin VB.Timer gflash 
  250.       Interval        =   150
  251.       Left            =   8040
  252.       Top             =   240
  253.    End
  254.    Begin VB.Timer ghost 
  255.       Enabled         =   0   'False
  256.       Index           =   0
  257.       Interval        =   1000
  258.       Left            =   8040
  259.       Top             =   840
  260.    End
  261.    Begin VB.Timer Timer1 
  262.       Interval        =   1
  263.       Left            =   9000
  264.       Top             =   0
  265.    End
  266.    Begin VB.TextBox Text1 
  267.       Enabled         =   0   'False
  268.       Height          =   288
  269.       Left            =   3240
  270.       TabIndex        =   14
  271.       Text            =   "Text1"
  272.       Top             =   0
  273.       Visible         =   0   'False
  274.       Width           =   2892
  275.    End
  276.    Begin VB.Timer Timer 
  277.       Enabled         =   0   'False
  278.       Index           =   9
  279.       Interval        =   25
  280.       Left            =   8520
  281.       Top             =   360
  282.    End
  283.    Begin VB.Timer Timer 
  284.       Enabled         =   0   'False
  285.       Index           =   8
  286.       Interval        =   25
  287.       Left            =   8520
  288.       Top             =   360
  289.    End
  290.    Begin VB.Timer Timer 
  291.       Enabled         =   0   'False
  292.       Index           =   7
  293.       Interval        =   25
  294.       Left            =   8520
  295.       Top             =   360
  296.    End
  297.    Begin VB.Timer Timer 
  298.       Enabled         =   0   'False
  299.       Index           =   6
  300.       Interval        =   25
  301.       Left            =   8520
  302.       Top             =   360
  303.    End
  304.    Begin VB.Timer Timer 
  305.       Enabled         =   0   'False
  306.       Index           =   5
  307.       Interval        =   25
  308.       Left            =   8520
  309.       Top             =   360
  310.    End
  311.    Begin VB.Timer Timer 
  312.       Enabled         =   0   'False
  313.       Index           =   4
  314.       Interval        =   25
  315.       Left            =   8520
  316.       Top             =   360
  317.    End
  318.    Begin VB.Timer Timer 
  319.       Enabled         =   0   'False
  320.       Index           =   3
  321.       Interval        =   25
  322.       Left            =   8520
  323.       Top             =   360
  324.    End
  325.    Begin VB.Timer Timer 
  326.       Enabled         =   0   'False
  327.       Index           =   2
  328.       Interval        =   25
  329.       Left            =   8520
  330.       Top             =   360
  331.    End
  332.    Begin VB.Timer Timer 
  333.       Enabled         =   0   'False
  334.       Index           =   1
  335.       Interval        =   25
  336.       Left            =   8520
  337.       Top             =   360
  338.    End
  339.    Begin VB.Timer Timer 
  340.       Enabled         =   0   'False
  341.       Index           =   0
  342.       Interval        =   25
  343.       Left            =   8520
  344.       Top             =   360
  345.    End
  346.    Begin VB.CommandButton bullet 
  347.       BackColor       =   &H00000000&
  348.       Enabled         =   0   'False
  349.       Height          =   384
  350.       Index           =   9
  351.       Left            =   8832
  352.       Style           =   1  'Graphical
  353.       TabIndex        =   13
  354.       Top             =   768
  355.       Visible         =   0   'False
  356.       Width           =   384
  357.    End
  358.    Begin VB.CommandButton bullet 
  359.       BackColor       =   &H00000000&
  360.       Enabled         =   0   'False
  361.       Height          =   384
  362.       Index           =   8
  363.       Left            =   8832
  364.       Style           =   1  'Graphical
  365.       TabIndex        =   12
  366.       Top             =   768
  367.       Visible         =   0   'False
  368.       Width           =   384
  369.    End
  370.    Begin VB.CommandButton bullet 
  371.       BackColor       =   &H00000000&
  372.       Enabled         =   0   'False
  373.       Height          =   384
  374.       Index           =   7
  375.       Left            =   8832
  376.       Style           =   1  'Graphical
  377.       TabIndex        =   11
  378.       Top             =   768
  379.       Visible         =   0   'False
  380.       Width           =   384
  381.    End
  382.    Begin VB.CommandButton bullet 
  383.       BackColor       =   &H00000000&
  384.       Enabled         =   0   'False
  385.       Height          =   384
  386.       Index           =   6
  387.       Left            =   8832
  388.       Style           =   1  'Graphical
  389.       TabIndex        =   10
  390.       Top             =   768
  391.       Visible         =   0   'False
  392.       Width           =   384
  393.    End
  394.    Begin VB.CommandButton bullet 
  395.       BackColor       =   &H00000000&
  396.       Enabled         =   0   'False
  397.       Height          =   384
  398.       Index           =   5
  399.       Left            =   8832
  400.       Style           =   1  'Graphical
  401.       TabIndex        =   9
  402.       Top             =   768
  403.       Visible         =   0   'False
  404.       Width           =   384
  405.    End
  406.    Begin VB.CommandButton bullet 
  407.       BackColor       =   &H00000000&
  408.       Enabled         =   0   'False
  409.       Height          =   384
  410.       Index           =   4
  411.       Left            =   8832
  412.       Style           =   1  'Graphical
  413.       TabIndex        =   8
  414.       Top             =   768
  415.       Visible         =   0   'False
  416.       Width           =   384
  417.    End
  418.    Begin VB.CommandButton bullet 
  419.       BackColor       =   &H00000000&
  420.       Enabled         =   0   'False
  421.       Height          =   384
  422.       Index           =   3
  423.       Left            =   8832
  424.       Style           =   1  'Graphical
  425.       TabIndex        =   7
  426.       Top             =   768
  427.       Visible         =   0   'False
  428.       Width           =   384
  429.    End
  430.    Begin VB.CommandButton bullet 
  431.       BackColor       =   &H00000000&
  432.       Enabled         =   0   'False
  433.       Height          =   384
  434.       Index           =   2
  435.       Left            =   8832
  436.       Style           =   1  'Graphical
  437.       TabIndex        =   6
  438.       Top             =   768
  439.       Visible         =   0   'False
  440.       Width           =   384
  441.    End
  442.    Begin VB.CommandButton bullet 
  443.       BackColor       =   &H00000000&
  444.       Enabled         =   0   'False
  445.       Height          =   384
  446.       Index           =   1
  447.       Left            =   8832
  448.       Style           =   1  'Graphical
  449.       TabIndex        =   5
  450.       Top             =   768
  451.       Visible         =   0   'False
  452.       Width           =   384
  453.    End
  454.    Begin VB.CommandButton bullet 
  455.       BackColor       =   &H00000000&
  456.       Enabled         =   0   'False
  457.       Height          =   384
  458.       Index           =   0
  459.       Left            =   8832
  460.       Style           =   1  'Graphical
  461.       TabIndex        =   4
  462.       Top             =   768
  463.       Visible         =   0   'False
  464.       Width           =   384
  465.    End
  466.    Begin VB.ListBox Chat 
  467.       Appearance      =   0  'Flat
  468.       CausesValidation=   0   'False
  469.       Enabled         =   0   'False
  470.       Height          =   1092
  471.       IntegralHeight  =   0   'False
  472.       Left            =   120
  473.       MousePointer    =   12  'No Drop
  474.       TabIndex        =   3
  475.       TabStop         =   0   'False
  476.       Top             =   4680
  477.       Width           =   7572
  478.    End
  479.    Begin InetCtlsObjects.Inet Inet1 
  480.       Left            =   600
  481.       Top             =   120
  482.       _ExtentX        =   995
  483.       _ExtentY        =   995
  484.       _Version        =   393216
  485.       Protocol        =   4
  486.       URL             =   "http://"
  487.    End
  488.    Begin MSWinsockLib.Winsock Winsock1 
  489.       Left            =   0
  490.       Top             =   120
  491.       _ExtentX        =   593
  492.       _ExtentY        =   593
  493.       _Version        =   393216
  494.    End
  495.    Begin VB.Image ghosty 
  496.       Height          =   432
  497.       Left            =   8880
  498.       Picture         =   "Tank Game.frx":0000
  499.       Top             =   4200
  500.       Visible         =   0   'False
  501.       Width           =   396
  502.    End
  503.    Begin VB.Label Label3 
  504.       BackStyle       =   0  'Transparent
  505.       Height          =   252
  506.       Left            =   6480
  507.       TabIndex        =   16
  508.       Top             =   600
  509.       Width           =   1332
  510.    End
  511.    Begin VB.Label Label2 
  512.       BackStyle       =   0  'Transparent
  513.       Height          =   252
  514.       Left            =   6480
  515.       TabIndex        =   15
  516.       Top             =   240
  517.       Width           =   1332
  518.    End
  519.    Begin VB.Image GuySkin 
  520.       Height          =   432
  521.       Index           =   4
  522.       Left            =   8880
  523.       Picture         =   "Tank Game.frx":0E52
  524.       Top             =   1920
  525.       Visible         =   0   'False
  526.       Width           =   396
  527.    End
  528.    Begin VB.Image GuySkin 
  529.       Height          =   396
  530.       Index           =   3
  531.       Left            =   8880
  532.       Picture         =   "Tank Game.frx":1CA4
  533.       Top             =   2520
  534.       Visible         =   0   'False
  535.       Width           =   432
  536.    End
  537.    Begin VB.Image GuySkin 
  538.       Height          =   432
  539.       Index           =   2
  540.       Left            =   8880
  541.       Picture         =   "Tank Game.frx":2AD2
  542.       Top             =   3120
  543.       Visible         =   0   'False
  544.       Width           =   396
  545.    End
  546.    Begin VB.Image GuySkin 
  547.       Height          =   396
  548.       Index           =   1
  549.       Left            =   9000
  550.       Picture         =   "Tank Game.frx":3924
  551.       Top             =   3720
  552.       Visible         =   0   'False
  553.       Width           =   432
  554.    End
  555.    Begin VB.Image picbackground 
  556.       Height          =   768
  557.       Index           =   0
  558.       Left            =   8640
  559.       Picture         =   "Tank Game.frx":4752
  560.       Top             =   4920
  561.       Visible         =   0   'False
  562.       Width           =   600
  563.    End
  564.    Begin VB.Label lblhosting 
  565.       BackColor       =   &H00FF80FF&
  566.       Caption         =   "Hosting"
  567.       Height          =   252
  568.       Left            =   7080
  569.       TabIndex        =   2
  570.       Top             =   5880
  571.       Visible         =   0   'False
  572.       Width           =   612
  573.    End
  574.    Begin VB.Label Label1 
  575.       BackColor       =   &H00FFFFC0&
  576.       BackStyle       =   0  'Transparent
  577.       BeginProperty Font 
  578.          Name            =   "MS Sans Serif"
  579.          Size            =   7.8
  580.          Charset         =   0
  581.          Weight          =   700
  582.          Underline       =   0   'False
  583.          Italic          =   0   'False
  584.          Strikethrough   =   0   'False
  585.       EndProperty
  586.       Height          =   252
  587.       Left            =   6360
  588.       TabIndex        =   1
  589.       Top             =   0
  590.       Visible         =   0   'False
  591.       Width           =   2892
  592.    End
  593.    Begin VB.Line Line1 
  594.       X1              =   0
  595.       X2              =   640
  596.       Y1              =   480
  597.       Y2              =   480
  598.    End
  599.    Begin VB.Label lblConnected 
  600.       BackColor       =   &H0000FF00&
  601.       Caption         =   "Connected"
  602.       Height          =   252
  603.       Left            =   0
  604.       TabIndex        =   0
  605.       Top             =   5880
  606.       Visible         =   0   'False
  607.       Width           =   7092
  608.    End
  609.    Begin VB.Image Guy 
  610.       Height          =   396
  611.       Index           =   2
  612.       Left            =   3480
  613.       Picture         =   "Tank Game.frx":6D94
  614.       Top             =   3480
  615.       Width           =   432
  616.    End
  617.    Begin VB.Image Guy 
  618.       Height          =   396
  619.       Index           =   1
  620.       Left            =   0
  621.       Picture         =   "Tank Game.frx":7BC2
  622.       Top             =   0
  623.       Width           =   432
  624.    End
  625.    Begin VB.Menu mConnectHost 
  626.       Caption         =   "Connect/Host"
  627.       Begin VB.Menu mHost 
  628.          Caption         =   "Host a game"
  629.       End
  630.       Begin VB.Menu mConnect 
  631.          Caption         =   "Connect"
  632.       End
  633.       Begin VB.Menu mDisconnect 
  634.          Caption         =   "Disconnect"
  635.       End
  636.       Begin VB.Menu mgetIp 
  637.          Caption         =   "Get External IP"
  638.       End
  639.    End
  640.    Begin VB.Menu mOption 
  641.       Caption         =   "Options"
  642.       Begin VB.Menu mPort 
  643.          Caption         =   "Choose Port"
  644.       End
  645.       Begin VB.Menu atk 
  646.          Caption         =   "Attack!"
  647.          Shortcut        =   {F2}
  648.       End
  649.       Begin VB.Menu mDrawLines 
  650.          Caption         =   "Draw Lines"
  651.       End
  652.       Begin VB.Menu mSay 
  653.          Caption         =   "Say"
  654.          Shortcut        =   ^S
  655.       End
  656.       Begin VB.Menu mSkins 
  657.          Caption         =   "Cloak"
  658.          Shortcut        =   {F3}
  659.       End
  660.    End
  661.    Begin VB.Menu mHelp 
  662.       Caption         =   "Help"
  663.       Begin VB.Menu mAbout 
  664.          Caption         =   "About"
  665.       End
  666.    End
  667. End
  668. Attribute VB_Name = "Form1"
  669. Attribute VB_GlobalNameSpace = False
  670. Attribute VB_Creatable = False
  671. Attribute VB_PredeclaredId = True
  672. Attribute VB_Exposed = False
  673. 'SIMPLE MULTIPLAYER GAME
  674. 'Created by FST
  675. Private outofbullets As Integer
  676. Private datacount As Integer
  677. Private character(30) As String
  678.  
  679. 'Understanding of Cells
  680. 'This whole program is based on cells as you can notice. That means that i am creating
  681. 'squares on the form, where the guys can move. So i am limiting the positions they can be in
  682. 'This has its up and downs, down side is that you cannot see your guy nicely going from one
  683. 'position to another, he looks as though he is jumping there, appearing out of nowhere. But the
  684. 'good part about making cells is that you can monitor your guys, then later on in game you
  685. 'can add some objects in the form, stones, monsters, you get to know exact positions where they are
  686. 'and you dont have to use the RECT collision detection
  687.  
  688. 'Also remember, winsock cant be perfect. If you have AOL you can lag. Connection, computer...
  689. 'some packets get lost, mixed up or even joined. We will discuss this later
  690.  
  691. 'The next known bug is that when you start this application in Visual Basic and someone connects to you,
  692. 'then you try to say something, the text you send he wont see! BUt you will see the text he sends.
  693. 'I wasnt able to identify why this happens, but it is like that and i cant fix it
  694. 'So what you do when you want to use SAY feature appropriatly, create an EXE of this application
  695. 'and run that EXE, the SAY feature will be flawless when you run this as EXE...
  696.  
  697. 'for FOR..NEXT loops
  698. Dim score(1) As Integer 'score(0) = you, score(1) = them
  699. Dim i As Integer, r As Integer, c As Integer
  700. Dim dir As String
  701. Dim strr As String
  702. Dim direction(9) As Integer 'direction bullet was shot at, used 9 so i can easily change # of bullets
  703. 'positions of both guys
  704. Dim GuyXpos(2) As Integer 'should have commented this while i was programming, i think i made guyXpos(1) you and 2 them
  705. Dim GuyYpos(2) As Integer ' look above
  706.  
  707. 'if lines option is selected
  708. Dim lines As Boolean 'to draw lines for easy shooting
  709.  
  710. 'winsock stuff
  711. Dim port As Single, hostIP As String
  712.  
  713. 'winsock data arrival Dims, they will be needed later on
  714. Dim Data As String
  715. Dim Data2() As String
  716. Dim data3() As String
  717.  
  718. 'temporary variable for messagebox input yes/no
  719. Dim temp As Integer
  720.  
  721. 'for graphics loop in painting the picture with grass
  722. Dim x As Integer, y As Integer
  723.  
  724. 'for chat
  725. Private namez As String
  726.  
  727. 'to make sure there are no variables that we are using that are not dimmed
  728. Option Explicit
  729.  
  730. Sub DrawLines()
  731. 'this procedure is called if the user selects the option to draw squares...
  732.  
  733. 'this For..Next loop does horizontal lines
  734. For i = 1 To 20
  735. Form1.Line (i * 32, 0)-(i * 32, 480)
  736. Next i
  737.  
  738. 'this For..Next loop does vertical lines
  739. For i = 1 To 15
  740. Form1.Line (0, i * 32)-(640, i * 32)
  741. Next i
  742. 'the form is 640 X 480 big
  743.  
  744. 'this boolean holds the current state... false = no lines, true = draw lines
  745. lines = True
  746. End Sub
  747.  
  748.  
  749. Private Sub atk_Click()
  750. Dim num As Integer 'number of bullet thats available
  751. Dim count As Integer 'to see if there are bullets
  752. For i = 0 To 5
  753. If bullet(i).Left = Guy(1).Left And bullet(i).Top = Guy(1).Top And bullet(i).Visible = False Then 'if bullet is in same spot as your tank and hasnt been shot
  754. num = i 'get number of that bullet
  755. count = 1 'make sure that it wont output that ur out of bullets
  756. End If
  757. Next i
  758. If count = 1 Then 'if u have bullets
  759. bullet(num).Visible = True 'the bullet that u found LAST is shot
  760. Text1.Text = num 'for testing purposes
  761. Timer(num).Enabled = True 'makes the timer for speed of bullet start
  762. direction(num) = dir 'direction = way ur facing, check out keydown
  763. Winsock1.SendData "003|" 'tells other computer u shot a bullet
  764. Else
  765. Chat.RemoveItem (0) 'removes first thing of textbox so that it looks like its scrolling up... same as CHAT
  766. outofbullets = outofbullets + 1 'amount of times that this has occured
  767. Chat.AddItem "* Out of bullets *   (time #" & outofbullets & ")" 'outputs that ur out of bullets and how many times you have already tried to shoot when u had no bullets (just for their knowledge on how much of a waster they are)
  768. End If
  769. End Sub
  770.  
  771. Private Sub btimer_Timer(Index As Integer) 'NOTE: any word with B at begining is opponents (bad)
  772. ' this just checks their position so bullet goes right way
  773. If bdirection(Index) = 1 Then
  774. bb(Index).Top = bb(Index).Top - 32
  775. ElseIf bdirection(Index) = 2 Then
  776. bb(Index).Left = bb(Index).Left - 32
  777. ElseIf bdirection(Index) = 3 Then
  778. bb(Index).Top = bb(Index).Top + 32
  779. Else
  780. bb(Index).Left = bb(Index).Left + 32
  781. End If
  782. If bb(Index).Left < 0 Or bb(Index).Left > 20 * 32 Or bb(Index).Top < 0 Or bb(Index).Top > 12 * 32 Then 'if it goes off the screen then
  783. 'set its position to b on their tank and make it invisible... now its usable again
  784. bb(Index).Visible = False
  785. bb(Index).Left = Guy(2).Left
  786. bb(Index).Top = Guy(2).Top
  787. btimer(Index).Enabled = False
  788. End If
  789. End Sub
  790.  
  791. Private Sub Chat_Click()
  792. Form1.SetFocus 'just incase they click on chat
  793. End Sub
  794.  
  795. Private Sub Chat_GotFocus()
  796. Form1.SetFocus 'incase they mess something up somehow, after all, they are bound to find a way
  797. End Sub
  798.  
  799. Private Sub Chat_ItemCheck(Item As Integer)
  800. Form1.SetFocus '...
  801. End Sub
  802.  
  803. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  804. 'this occurs when the user releases a key. We use this Select Case to find out which key
  805. 'the user released
  806. rpt = 0
  807. Select Case KeyCode
  808. 'if its key up
  809. Case vbKeyUp
  810.  
  811.     'then we first check if the Yposition of the player isnt 1, therefore he cant go more up!
  812.     If GuyYpos(1) <> 1 Then
  813.     rpt = 1
  814.     For i = 0 To 9
  815.     'moves bullets along with them
  816. If bullet(i).Top = Guy(1).Top And bullet(i).Left = Guy(1).Left And bullet(i).Visible = False Then
  817. bullet(i).Top = bullet(i).Top - 32
  818. End If
  819. Next i
  820.     'but if it is not, change his Y position one up
  821.     GuyYpos(1) = GuyYpos(1) - 1 'changes actual position of character
  822.     dir = 1 'makes direction be 1 (up), used for skins and bullet directions... same for other 3 instances
  823.     End If
  824. Case vbKeyRight
  825.  
  826.     'We check if the position of the player isnt already maximum of going right
  827.     If GuyXpos(1) <> 20 Then
  828.     rpt = 1
  829.         'moves bullets along with them
  830.     For i = 0 To 9
  831. If bullet(i).Top = Guy(1).Top And bullet(i).Left = Guy(1).Left And bullet(i).Visible = False Then
  832. bullet(i).Left = bullet(i).Left + 32
  833. End If
  834. Next i
  835.     GuyXpos(1) = GuyXpos(1) + 1
  836.     dir = 4
  837.     End If
  838. Case vbKeyDown
  839.  
  840.     'here we check if the player isnt at the bottom of the screen and he cant go any more down
  841.     If GuyYpos(1) <> 12 Then
  842.     rpt = 1
  843.         'moves bullets along with them
  844.     For i = 0 To 9
  845. If bullet(i).Top = Guy(1).Top And bullet(i).Left = Guy(1).Left And bullet(i).Visible = False Then
  846. bullet(i).Top = bullet(i).Top + 32
  847. End If
  848. Next i
  849. GuyYpos(1) = GuyYpos(1) + 1
  850.     dir = 3
  851.     End If
  852. Case vbKeyLeft
  853.  
  854.     'if the user pressed left, but his position is already minimum left value, we cant go anymore left
  855.     If GuyXpos(1) <> 1 Then
  856.     rpt = 1
  857.         'moves bullets along with them
  858.     For i = 0 To 9
  859. If bullet(i).Top = Guy(1).Top And bullet(i).Left = Guy(1).Left And bullet(i).Visible = False Then
  860. bullet(i).Left = bullet(i).Left - 32
  861. End If
  862. Next i
  863. GuyXpos(1) = GuyXpos(1) - 1
  864.     dir = 2
  865.     End If
  866. End Select
  867. Guy(1).Picture = GuySkin(5 - dir).Picture 'changes skin
  868.  
  869. If Winsock1.State <> 0 Then
  870. Winsock1.SendData "999" & "/" & 5 - dir & "|" 'send em the position he is now in and let the other player interpret it
  871. 'the less amount of data sent the quicker everything runs
  872. End If
  873. 'here we move the actual guy to the updated X and Y positions
  874. 'we use the .Move command instead of setting .Left and .Top separatly which takes longer both to you
  875. 'and the computer to process it
  876. Guy(1).Move GuyXpos(1) * 32 - 32, GuyYpos(1) * 32 - 32
  877.  
  878. 'finally, we need to send the new data over to the other player, we use On Error Resume Next,
  879. 'just to make sure the program doesnt crash if the user moves and he is not connected yet
  880. On Error Resume Next
  881.     
  882. 'This line can be difficult to understand so let me explain
  883. 'Programming with winsock is hard. If you are constantly sending a lot of packets at the same time,
  884. 'sometimes they get mixed up, or joined. Most of time though they are ok, but sometimes it doesnt
  885. 'work out. Lets have an example to illustrate this.
  886. 'lets say
  887. 'X = 5
  888. 'y = 15
  889. 'Now we need to send these over to the other side. We do this by joining these two numbers and putting
  890. 'a dummie between them, so we are sending one string in fact, but then later on on dataarrival section
  891. 'we extract each information by using the Split() function. Therefore we could do this:
  892. 'Winsock1.SendData GuyXpos(1) & "/" & GuyYpos(1)
  893. 'it seems like a good syntax from what i told you so far. But remember ! I said above that the packets
  894. 'sometimes join. So we are sending 5/15 very fast and eventually sometimes the other guy gets a string
  895. '5/155/15. See the difference ? Two packets are joined and the Y coordinate becomes 155!
  896. 'Therefore we add "|" in the end. Its importance will be documented in dataarrival section.
  897. If rpt = 1 Then
  898. Winsock1.SendData GuyXpos(1) & "/" & GuyYpos(1) & "|"
  899. End If
  900. For i = 0 To 9
  901. If bullet(i).Visible = False Then
  902. bullet(i).Move GuyXpos(1) * 32 - 32, GuyYpos(1) * 32 - 32
  903. End If
  904. Next i
  905. End Sub
  906.  
  907. Private Sub Form_Load()
  908.  
  909. atk.Enabled = False 'makes sure u dont atk @ begining before u are connected
  910. 'sets all bullets at same position as u
  911. For i = 0 To 9
  912. bullet(i).Top = Guy(1).Top
  913. bullet(i).Left = Guy(1).Left
  914. bb(i).Top = Guy(2).Top
  915. bb(i).Left = Guy(2).Left
  916. Next i
  917. 'asks for name to be used in chat
  918. namez = InputBox("What is your name?")
  919. dir = 2
  920. 'makes chatbox blank, that way when a message is sent, top item is deleted and new item is placed on bottom, this makes an actual chat effect without making the forum lose focus
  921. Chat.AddItem ""
  922. Chat.AddItem ""
  923. Chat.AddItem ""
  924. Chat.AddItem ""
  925. Chat.AddItem ""
  926. 'to make sure all numbers generated are TRULY random
  927. Randomize 'added later: just realized that no random numbers are used
  928. 'we set the default port
  929. port = 5432
  930. 'we set the default position for both characters
  931. GuyXpos(1) = 1
  932. GuyYpos(1) = 1
  933. GuyXpos(2) = 10
  934. GuyYpos(2) = 10
  935.  
  936. 'we move these characters to the default positions that were given above
  937. Guy(1).Move GuyXpos(1) * 32 - 32, GuyYpos(1) * 32 - 32
  938. Guy(2).Move GuyXpos(2) * 32 - 32, GuyYpos(2) * 32 - 32
  939.  
  940. 'this code is the code that creates the grass
  941.  
  942.     'first we make sure y is 0
  943.     y = 0
  944.     'then we cicle through the rows(r)
  945.     For r = 1 To 14
  946.         'everytime a row changes, we need to assign new X
  947.        x = 0
  948.         'we cycle through all columns
  949.         For c = 1 To 20
  950.             'we use this function to paint the form1 with the picture of grass
  951.             Form1.PaintPicture picbackground(0).Picture, x, y
  952.             'increase x by 32 (one square, or cell if you like)
  953.            x = x + 32
  954.         Next c
  955.         'add 32 to Y
  956.         y = y + 32
  957.     Next r
  958.     'note: u need to wait a while if u run that in debug mode! thats 14 * 20 = 280 cycles!
  959.     'insure graphic presistance
  960.     Form1.Picture = Form1.Image
  961. Chat.Enabled = False
  962.  
  963. End Sub
  964.  
  965. Private Sub Form_Unload(Cancel As Integer)
  966. 'we want to close the winsock before we close the program
  967. Winsock1.Close
  968. End Sub
  969.  
  970.  
  971.  
  972.  
  973. Private Sub gflash_Timer()
  974. 'this makes the flashing G when they are a ghost
  975. If ghost(0).Enabled = True Then 'if they are actually a ghost
  976. If Guy(2).Picture = ghosty Then 'if they show the G symbol
  977. Guy(2).Picture = GuySkin(5 - dir) 'make their pic normal (later realized that this is YOUR skin... oh well, when they shoot they change to the correct direction anyways)
  978. Else
  979. Guy(2).Picture = ghosty
  980. End If
  981. End If
  982. End Sub
  983.  
  984. Private Sub ghost_Timer(Index As Integer)
  985. ghost(Index).Enabled = False 'after it finishes, disable this
  986. If rempic <> 0 Then
  987. Guy(2).Picture = GuySkin(5 - rempic).Picture
  988. Else
  989. Guy(2).Picture = GuySkin(4 - rempic).Picture
  990. End If
  991. End Sub
  992.  
  993.  
  994. Private Sub mAbout_Click()
  995. 'if the user clicks About, display this message
  996. MsgBox "This game was made by Yonatan Naamad." & vbCrLf & vbCrLf & "It is an open source two player tank game, in which you basically try to kill the other person.  If you find any bugs, or if you get an error and you know what caused it, email me @ cached@gmail.com and I'll fix it and add a thank-you to this program for u :).  Knock yourselves out, or should I say your opponents? :▐" & vbCrLf & vbCrLf & "Current Thank Yous: none", , "About"
  997. End Sub
  998.  
  999. Private Sub mConnect_Click()
  1000. Timer3.Enabled = True
  1001. atk.Enabled = True
  1002. On Error Resume Next
  1003. 'If the user clicks Connect, we need to get the IP of the hosting computer first !
  1004. hostIP = InputBox("Enter the host's computer name or ip address:" & vbCrLf & "(Be careful not to include any unnecessary spaces etc or error message will be generated.")
  1005. 'then we connect to this IP, on the default port
  1006. Winsock1.Connect hostIP, port
  1007. 'we let the user know that he is connected
  1008.  
  1009.  
  1010. 'we set up the starting default positions in a case that the user had moved before clicking connect
  1011. 'notice, that in mHOST sub, we do the same thing, but we do it the other way,
  1012. 'we let the GuyXpos(2) = 10, GuyYpos(2) = 10 and the GuyXpos(1) = 1 and GuyYpos(1) = 1
  1013. 'This is a really hard part to explain, you really need to think about it. If you click connect,
  1014. 'We set up your position 10, 10 and the host will be commanding the 1,1 guy
  1015. 'In Host Sub, its vice versa, the Guy(1) is given the positions in 1,1, and the Guy2 in 10,10 !
  1016. GuyXpos(2) = 1
  1017. GuyYpos(2) = 1
  1018. GuyXpos(1) = 10
  1019. GuyYpos(1) = 10
  1020. 'we move the pictures to updated positions
  1021. Guy(2).Move GuyXpos(2) * 32 - 32, GuyYpos(2) * 32 - 32
  1022. Guy(1).Move GuyXpos(1) * 32 - 32, GuyYpos(1) * 32 - 32
  1023.  
  1024. End Sub
  1025.  
  1026. Private Sub mDrawLines_Click()
  1027. 'If the user clicks DrawLines
  1028.  
  1029. 'and Lines are already Drawen (This option of DrawLines works as toggle so we
  1030. 'need to figure out the previous state)
  1031. If lines = True Then
  1032.     'clear the lines and set lines = false
  1033.     lines = False
  1034.     Form1.Cls
  1035. Else
  1036. ' if the lines is False however,
  1037.     'we set lines = true and we call DrawLines procedure to make the actual lines
  1038.     lines = True
  1039.     DrawLines
  1040. End If
  1041. End Sub
  1042.  
  1043. Private Sub mDisconnect_Click()
  1044. 'all we need to do here really is just to close Winsock1
  1045. Winsock1.Close
  1046. 'and we let the user know that he is not hosting anymore and that he is not connected
  1047. lblhosting.Visible = False
  1048. lblConnected.Visible = False
  1049. atk.Enabled = False
  1050. End Sub
  1051.  
  1052. Private Sub mgetIp_Click()
  1053. 'This Sub makes sure you get the external IP
  1054.  
  1055. 'temporary Dims
  1056. Dim a As Integer, b As Integer
  1057. Dim strURL As String, strIP As String
  1058. 'we open the www.whatismyip.com URL and read it whole into strURL, this can take some time
  1059. strURL = Inet1.OpenURL("http://www.whatismyip.com/")
  1060. 'we find where the part before the IP is written
  1061. a = InStr(1, strURL, "<TITLE>Your ip is ")
  1062. 'we find the part after the IP
  1063. b = InStr(1, strURL, " WhatIsMyIP.com</TITLE>")
  1064. ' NOTE: the strURL doesnt have the actual Text you see in the browser in it, it has the HTML
  1065. 'code of the site in it! You need to watch out for that
  1066.  
  1067. 'And the IP itself is between these two!
  1068. If Not a = 0 Then
  1069. strIP = Mid(strURL, a + 18, b - (a + 18)) 'if it confuses u, 18 is the length of the things we searched for above
  1070. '(<title>Your ip is ) and the other thing... it finds the characters between the ending of the first one and begining of 2nd
  1071. temp = MsgBox("Your IP is: " & strIP & vbCrLf & "Would you like to copy it to the clipboard ?", vbYesNo, "Your IP")
  1072. Else
  1073. MsgBox "Error: are you connected to the internet?"
  1074. End If
  1075. 'We let the user know what his IP is in form of message box
  1076. 'if user clicked Yes and he wants to copy the IP into the clipboard
  1077. If temp = 6 Then
  1078.     'first clear the clipboard
  1079.     Clipboard.Clear
  1080.     'then assign new clipboard text - (our IP)
  1081.     Clipboard.SetText strIP
  1082.     
  1083. End If
  1084. End Sub
  1085.  
  1086. Private Sub mHost_Click()
  1087. 'when we host, we make label lblhost visible to let the user know that he is hosting a game
  1088. lblhosting.Visible = True
  1089. 'we assign local port
  1090. Winsock1.LocalPort = port
  1091. 'and tell winsock to listen at the port
  1092. Winsock1.Listen
  1093. 'we set the Xpositions and Ypositions. See the mConnect sub for more documentation!
  1094. 'This is a crucial part of winsock understanding... compare this sub to the mConnect sub,
  1095. 'Particulary the positions im assigning!
  1096. GuyXpos(1) = 1
  1097. GuyYpos(1) = 1
  1098. GuyXpos(2) = 10
  1099. GuyYpos(2) = 10
  1100.  
  1101. 'we move the guys to the positions
  1102. Guy(2).Move GuyXpos(2) * 32 - 32, GuyYpos(2) * 32 - 32
  1103. Guy(1).Move GuyXpos(1) * 32 - 32, GuyYpos(1) * 32 - 32
  1104. End Sub
  1105.  
  1106. Private Sub mPort_Click()
  1107. 'We change the port
  1108. port = InputBox("Enter new port! I dont recommend lower port than 5000! default port = 5432")
  1109. End Sub
  1110.  
  1111. Private Sub mSay_Click()
  1112. 'this is to make sure that if we are not connected and click SAY the program doesnt crash
  1113. On Error Resume Next
  1114. 'what do you want to say?
  1115. strr = InputBox("What do you want to say?")
  1116. 'if you didnt click Cancel or OK without typing anything
  1117. If strr <> "" Then
  1118. 'we send the data with prefix 998 and again in the end we attach the | in case the packets are joined
  1119. Winsock1.SendData "998" & "/" & namez & ": " & strr & "|"
  1120. 'removes first item of chatbox and adds new item to make chatroom effect without allowing focus to it
  1121. Chat.RemoveItem (0)
  1122. Chat.AddItem namez & ": " & strr
  1123. End If
  1124. End Sub
  1125.  
  1126. Private Sub mSkins_Click()
  1127.  
  1128. 'if we are not connected
  1129. If lblConnected.Visible = False Then
  1130. MsgBox "NOTE: If you cloak before you connect, the other computer will still see you as uncloaked."
  1131. End If
  1132.  
  1133. 'pretty easy, we only read in a new image
  1134. 'Guy(1).Picture = GuySkin(Index).Picture
  1135.  
  1136. On Error Resume Next
  1137. 'we send through the winsock these two > an identifier 999 and the index # of the skin
  1138. 'in dataarrival sub, we check if the first data is 999 and if yes, we assign the skin with the # after
  1139. 'to the guy(2) .... (see Data Arrival Sub for more documentation)
  1140. 'notice the "|" in the end, we will discuss this in data arrival section
  1141. Winsock1.SendData "999" & "/" & 0 & "|"
  1142. End Sub
  1143.  
  1144. Private Sub Timer_Timer(Index As Integer)
  1145. 'for direction: top = 1, left = 2, bottom = 3, right = 4
  1146. 'the index is the # of bullet we are talking about
  1147. If direction(Index) = 1 Then
  1148. bullet(Index).Top = bullet(Index).Top - 32
  1149. ElseIf direction(Index) = 2 Then
  1150. bullet(Index).Left = bullet(Index).Left - 32
  1151. ElseIf direction(Index) = 3 Then
  1152. bullet(Index).Top = bullet(Index).Top + 32
  1153. Else
  1154. bullet(Index).Left = bullet(Index).Left + 32
  1155. End If
  1156. 'if bullet goes off screen
  1157. If bullet(Index).Left < 0 Or bullet(Index).Left > 20 * 32 Or bullet(Index).Top < 0 Or bullet(Index).Top > 12 * 32 Then
  1158. 'make it usable
  1159. bullet(Index).Visible = False
  1160. bullet(Index).Left = Guy(1).Left
  1161. bullet(Index).Top = Guy(1).Top
  1162.  
  1163. Timer(Index).Enabled = False
  1164. End If
  1165.  
  1166. 'if u hit
  1167. If (Guy(2).Left = bullet(Index).Left And Guy(2).Top = bullet(Index).Top And bullet(Index).Visible = True) Then
  1168. 'if they arent a ghost
  1169. If ghost(0).Enabled = False Then
  1170. 'if you are connected
  1171. If Winsock1.State <> 0 Then
  1172. 'tell em the bad news
  1173. Winsock1.SendData "002"
  1174. End If
  1175. 'w00t u score
  1176. score(0) = score(0) + 1
  1177. 'this is an interesting part... to make it fun for both ppl that are skilled in this and for noobs
  1178. 'i decided to make it so that for every hit you get, your bullets become a bit slower
  1179. '(1/100th of a second more per position change)
  1180. For i = 0 To 9
  1181. Timer(i).Interval = Timer(i).Interval + 10
  1182. Next i
  1183. ghost(0).Enabled = True
  1184. End If
  1185. End If
  1186.  
  1187. End Sub
  1188.  
  1189. Private Sub Timer1_Timer()
  1190. 'display score
  1191. Label2.Caption = "You: " & score(0)
  1192. Label3.Caption = "Them: " & score(1)
  1193. End Sub
  1194.  
  1195. Private Sub Timer2_Timer()
  1196. If rempic = 1 Or rempic = 2 Or rempic = 3 Or rempic = 4 Then
  1197. Guy(2).Picture = GuySkin(rempic).Picture
  1198. End If
  1199. End Sub
  1200.  
  1201. Private Sub Timer3_Timer()
  1202. 'makes sure EVERYTHING is positioned correctly
  1203. For i = 0 To 9
  1204. bullet(i).Top = Guy(1).Top
  1205. bullet(i).Left = Guy(1).Left
  1206. bb(i).Top = Guy(2).Top
  1207. bb(i).Left = Guy(2).Left
  1208. Next i
  1209. Timer3.Enabled = False
  1210. End Sub
  1211.  
  1212. Private Sub Timer4_Timer()
  1213. 'positions enemy bullets correctly
  1214. For i = 0 To 9
  1215. If btimer(i).Enabled = False Then
  1216. bb(i).Left = Guy(2).Left
  1217. bb(i).Top = Guy(2).Top
  1218. End If
  1219. Next i
  1220. End Sub
  1221.  
  1222. Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
  1223. 'if the other person is requesting connection, this Sub is executed
  1224. lblConnected.Visible = True
  1225. atk.Enabled = True
  1226. 'if Winsock is already in use, we close it
  1227. If Winsock1.State <> sckClosed Then
  1228. Winsock1.Close
  1229. End If
  1230.  
  1231. 'we accept the user
  1232. Winsock1.Accept requestID
  1233. Winsock1.SendData "001"
  1234. 'we let the user know that we are connected to the other person and that he joined the game
  1235. lblConnected.Visible = True
  1236. End Sub
  1237.  
  1238. Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  1239. 'now the juicy part
  1240. 'This is the command to receive the data if there is any incoming
  1241. Winsock1.GetData Data, vbString, bytesTotal
  1242. 'The data incoming is stored in the variable 'Data'
  1243.  
  1244. 'whoa why the hell did i write this? better not tamper with it.
  1245. If Data = "003|" Then
  1246. Call batk
  1247. ElseIf Data = "003|003|" Then
  1248. Call batk
  1249. Call batk
  1250. ElseIf Data = "003|003|003|" Then
  1251. Call batk
  1252. Call batk
  1253. Call batk
  1254. ElseIf Data = "003|003|003|003|" Then
  1255. Call batk
  1256. Call batk
  1257. Call batk
  1258. Call batk
  1259. ElseIf Data = "003|003|003|003|003|" Then
  1260. Call batk
  1261. Call batk
  1262. Call batk
  1263. Call batk
  1264. Call batk
  1265. Else
  1266. 'So we test. If the lenght of the data received is more then 6 and the packet joining has occured
  1267. If Data = "002" Then
  1268. score(1) = score(1) + 1
  1269. For i = 0 To 9
  1270. btimer(i).Interval = btimer(i).Interval + 10
  1271. Next i
  1272. Else
  1273. If Len(Data) > 6 Then
  1274.  
  1275. 'first we use a temporary variable to store the first part. We extract the 5/15 out of the 5/15|5/15
  1276. data3 = Split(Data, "|")
  1277. 'then from the first part we extract both values Data2(0) becomes the X (5) and Data2(1) becomes Y (15)
  1278. Data2 = Split(data3(0), "/")
  1279.  
  1280. 'we print both
  1281. Label1.Caption = "Xpos = " & Data2(0) & "  .. Ypos = " & Data2(1)
  1282.  
  1283. 'if the data2(0) is 999 and the skin change has occured
  1284. If CInt(Data2(0)) = 999 Then
  1285. 'change the skin
  1286. Guy(2).Picture = GuySkin(CInt(Data2(1)))
  1287. rempic = CInt(Data2(1))
  1288. 'parses the data by moving the guy
  1289. If (CInt(Data2(1))) = 4 Then
  1290. If Guy(2).Top > 0 Then
  1291. Guy(2).Top = Guy(2).Top - 32
  1292. End If
  1293. ElseIf (CInt(Data2(1))) = 3 Then
  1294. If Guy(2).Left > 0 Then
  1295. Guy(2).Left = Guy(2).Left - 32
  1296. End If
  1297. ElseIf (CInt(Data2(1))) = 2 Then
  1298. If Guy(2).Top < 32 * 11 Then
  1299. Guy(2).Top = Guy(2).Top + 32
  1300. End If
  1301. ElseIf (CInt(Data2(1))) = 1 Then
  1302. If Guy(2).Left < 19 * 32 Then
  1303. Guy(2).Left = Guy(2).Left + 32
  1304. End If
  1305. End If
  1306. 'but if the prefix is 998 (for SAY message)
  1307. ElseIf CInt(Data2(0)) = 998 Then
  1308. 'we do all the crap, display the label, put in text, move it appropriatly
  1309. Chat.RemoveItem (0)
  1310. Chat.AddItem Data2(1)
  1311. Else
  1312. 'update the position of second player
  1313. 'Guy(2).Move CInt(Data2(0)) * 32 - 32, CInt(Data2(1)) * 32 - 32
  1314.  
  1315. End If
  1316.  
  1317. ElseIf Len(Data) = 3 Then
  1318. 'If Data = "001" Then
  1319. lblConnected.Visible = True
  1320. 'End If
  1321. Else
  1322. 'but if the packets joining hasnt occured and the Data arrived is 5/15| then
  1323. 'we first split these terms by /, thus giving us 5 and 15|
  1324. Data2 = Split(Data, "/")
  1325. 'I hope you notice that the Y coordinate is 15| instead of 15. So we need to cut the last character
  1326. 'so now the Data2(0) is the X (5) and Data2(1) is the Y coordinate (15)
  1327. Data2(1) = Left$(Data2(1), Len(Data2(1)) - 1)
  1328.  
  1329. 'we print both
  1330. Label1.Caption = "Xpos = " & Data2(0) & "  .. Ypos = " & Data2(1)
  1331.  
  1332. 'if the data2(0) is 999 and the skin change has occured
  1333. If CInt(Data2(0)) = 999 Then
  1334. 'change the skin
  1335. Guy(2).Picture = GuySkin(CInt(Data2(1)))
  1336. 'If (CInt(Data2(1))) = 1 Then
  1337. 'Guy(2).Move GuyXpos(2) * 32 - 32, GuyYpos(2) * 32 - 32
  1338. 'ElseIf (CInt(Data2(1))) = 2 Then
  1339. 'Guy(2).Left = Guy(2).Left + 32
  1340. 'ElseIf (CInt(Data2(1))) = 3 Then
  1341. 'Guy(2).Top = Guy(2).Top - 32
  1342. 'Else
  1343. 'Guy(2).Left = Guy(2).Left - 32
  1344. 'End If
  1345. 'but if the prefix is 998 (for SAY message)
  1346. ElseIf CInt(Data2(0)) = 998 Then
  1347. 'we do all the crap, display the label, put in text, move it appropriatly
  1348. Chat.RemoveItem (0)
  1349. Chat.AddItem Data2(1)
  1350. Else
  1351. 'update the position of second player
  1352.  
  1353.  
  1354. End If
  1355.  
  1356. End If
  1357. End If
  1358. End If
  1359. End Sub
  1360.  
  1361.  
  1362.  
  1363.